/**
 * Alibaba.com.cn Inc.
 * Copyright (c) 2004-2021 All Rights Reserved.
 */
package com.yongbao.common.extention.annotation;

import com.yongbao.common.extention.ExtensionPoint;
import org.springframework.stereotype.Component;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * @author taixi
 * @version BizExtension.java, v 0.1 2020-03-16 10:47 taixi Exp $$
 */
@Inherited
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Component
public @interface BizExtension {

    /**
     * 处理器名称，建议多段式，防止重复，如XXX#XX#XX
     * 如果每个坐标不关心可以用*代替，但是不可以同时为*，
     * 正例：会员#生日礼#短信， *#生日礼#短信
     * 反例：*#*#*
     *
     * @return
     */
    String[] keys();

    Class<? extends ExtensionPoint> group() default ExtensionPoint.class;

}
